利用Spark RDD实现分组并排序 |
您所在的位置:网站首页 › spark 分组求最大 › 利用Spark RDD实现分组并排序 |
摘 要 本文将介绍利用Spark RDD实现分组并排序。 前言被朋友问到Spark分组并排序怎么实现?当时,本人觉得So-Easy的问题。因为在MapReduce也会有类似的需求,相较于MapReduce,那Spark的实现简直简单爆了。but,依然阴沟翻船,具体思路是没有错的,但在纸上描述代码的时候出现了错误,这其实就是归根于用IDE的代价吧。好多东西,不需要刻意的去记忆。反思... ...所以在ide上手动实现了一遍Spark RDD 分组并排序,以示警戒。 思路思路很简单,就是按照key分组,并且分组完成后将其每组内部进行分组排序。涉及到的算子有两个:groupByKey & mapValues 代码实现代码语言:javascript复制object RDDTest { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local").setAppName("RDDTest") val sc = new SparkContext(conf) val rdd1 = sc.parallelize(List(("a",1),("a",2),("a",3),("a",4),("b",5),("b",6),("b",7),("b",8))) //根据key分组并内部降序 rdd1.groupByKey().mapValues(f=>{ //分组内部排序的两种方式 f.toList.sorted.reverse // f.toList.sortWith(_>_) }).foreach(println) sc.stop() } } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |